package db

import (
	"fmt"
	"time"
)

// WriteStorageData 将字符串类型的存储数据写入数据库
func WriteStorageData(client *Client, dataList []StorageData) error {
	// 插入SQL（字段与结构体完全匹配）
	sql := `
		INSERT INTO storage 
		(namespace, app, pvc, total_size, used_size, available_size, usage_percent, created_at)
		VALUES (?, ?, ?, ?, ?, ?, ?, ?)
	`
	// fmt.Printf("成功写入数据（namespace=%s）\n", dataList)
	for _, data := range dataList {
		// 为每条数据添加当前采集时间（用于后续按时间分组查询）
		_, err := client.Exec(sql,
			data.Namespace,
			data.App,
			data.PVCName,
			data.TotalSize,
			data.UsedSize,
			data.AvailableSize,
			data.UsagePercent,
			time.Now().Format("2006-01-02 15:04:05"), // 补充采集时间
		)

		if err != nil {
			return fmt.Errorf("写入数据失败（namespace=%s）：%v", data.Namespace, err)
		}
	}
	return nil
}
